
package com.qdu.aop;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
//定义一个方面类，包含次要业务逻辑
@Component
@Aspect 
public class LogAspect {
    
    //声明一个切入点
    @Pointcut("execution(* com.qdu.dao.*.*(..))") 
    private void logPointcut(){}
    
    //定义一个最终通知:不管目标方法/连接点方法是否出现异常,最终通知都会执行
    //一般用于释放资源
    @After("logPointcut()") //@After将方法定义为最终通知
    public void logAfter(JoinPoint p){
        System.out.println("---最终通知执行,当前方法:"
                +p.getSignature().getName());
    }
}
